package cc.rengu.redp.hawk.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author xushitang
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_HAWK_MONITOR_CONFIG")
public class HawkMonitorConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    public final static String COLLECTION_WAY_PUSH = "0";
    public final static String COLLECTION_WAY_PULL = "1";

    public final static String SHOW_CHART_LINE = "01"; // 线性图
    public final static String SHOW_CHART_RADIAL = "02"; // 径向图
    public final static String SHOW_CHART_LIST = "03"; // 列表图

    @TableId("HAWK_ID")
    private Long hawkId;

    /**
     * 监控项目名称
     */
    @TableField("HAWK_NAME")
    private String hawkName;

    /**
     * 监控是否启用
     */
    @TableField("USE_ENABLE")
    private Boolean useEnable;

    /**
     * 采集方式（0-推送（被动采集），1-主动采集）
     */
    @TableField("COLLECTION_WAY")
    private String collectionWay;

    /**
     * 采集频率（秒）
     */
    @TableField("COLLECTION_FREQ")
    private Integer collectionFreq;

    /**
     * 采集来源URL
     */
    @TableField("COLLECTION_URL")
    private String collectionUrl;

    /**
     * 最大缓存时间（秒）
     */
    @TableField("CACHE_PERIOD")
    private Integer cachePeriod;

    /**
     * 采集任务ID
     */
    @TableField("COLLECTION_JOB_ID")
    private Long collectionJobId;

    /**
     * 指标列表
     */
    @TableField("INDEX_LIST")
    private String indexList;

    /**
     * 监控是否展示
     */
    @TableField("SHOW_ENABLE")
    private Boolean showEnable;

    /**
     * 展示分组名称
     */
    @TableField("SHOW_GROUP_NAME")
    private String showGroupName;

    /**
     * 展示顺序
     */
    @TableField("SHOW_ORDER")
    private Integer showOrder;

    /**
     * 图表类型（01-线形图，02-径向图，03-列表图）
     */
    @TableField("SHOW_CHART")
    private String showChart;

    /**
     * 图表参数
     */
    @TableField("SHOW_CHART_PARAMS")
    private String showChartParams;


}
